package com.yt.system.dao;

import com.yt.system.domain.Applyresource;
import com.yt.system.domain.Resource;
import com.yt.system.vo.OccupyResourceVO;
import com.yt.system.vo.UserApplyResourceVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

@Mapper
@Repository
public interface ApplyresourceMapper {
    int deleteByPrimaryKey(Integer arid);

    int insert(Applyresource record);

    Applyresource selectByPrimaryKey(Integer arid);

    int updateByPrimaryKeySelective(Applyresource record);

    int updateByPrimaryKey(Applyresource record);

    /**
     * 插入申请记录
     * @param record
     * @return
     */
    int insertSelective(Applyresource record);

    /**
     * 查询离申请时间最近的占用开始时间
     * @param applyStartTime,type
     * @return
     */
    Date selectAvailableTime(@Param("applyStartTime") Date applyStartTime, @Param("rid") Integer rid);

    /**
     * 根据用户ID查询申请记录
     * @param uid
     * @return
     */
    List<UserApplyResourceVO> selectByUid(Integer uid);

    /**
     * 根据资源ID查询申请记录
     * @param rid
     * @return
     */
    List<OccupyResourceVO> selectByRid(Integer rid);

    List<UserApplyResourceVO> selectByFlag(Integer flag);  //根据状态查找资源信息（已被申请和历史申请）

}